using StudentManagement.Domain.Entities;

namespace StudentManagement.Domain.Repositories;

public interface IRoleRepository : IRepository<Role>
{
    Task<Role> GetRoleByNameAsync(string name);
    Task<IEnumerable<Role>> GetActiveRolesAsync();
    Task<IEnumerable<Role>> SearchRolesAsync(string keyword);
    Task<IEnumerable<Permission>> GetPermissionsByRoleIdAsync(int roleId);
    Task AddPermissionToRoleAsync(int roleId, int permissionId);
    Task RemovePermissionFromRoleAsync(int roleId, int permissionId);
}